package com.zeratul.common.event.config.prop;

import com.zeratul.common.event.enums.ExecType;
import com.zeratul.common.event.enums.SubModel;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 事件总线配置属性
 */
@Data
@ConfigurationProperties(prefix = "zt-event")
public class ZeratulEventProperties {

    /**
     * 执行器类型，默认本地 执行
     */
    private ExecType type = ExecType.LOCAL;

    /**
     * 订阅者配置
     */
    private Subscribe subscribe = new Subscribe();

    /**
     * 订阅者配置
     */
    @Data
    public static class Subscribe {

        /**
         * 订阅模式：快速订阅 和 完全订阅
         */
        private SubModel subModel = SubModel.QUICKLY;

    }
}
